2017-03-01 117 views
1

对于某个项目,我需要创建包含图像的不同NuGet包。然后,我需要在项目中安装这些软件包并将这些图像放在窗体中。这一切都很顺利。从图像资源引用VS 2015中的packages文件夹中的图像

我的问题是,当我签出Git中的另一个分支并执行包恢复时,出于某种原因,Visual Studio无法找到表单中使用的图像。对于它的工作,我需要在下面的命令在解决方案级别手动键入:

Update-Package Reinstall 

我这样做后,一切又建设。问题是,我不想每次在Git中切换分支时都这样做。我已经看过,如果Visual Studio解决了这个问题,但我能找到的只有这个:Linked and Embedded Resources

我希望当我执行程序包还原时,Visual Studio将对该图像的引用进行替换,因此在程序包恢复后它会始终识别图像。我的问题:这是否可能,如果是,如何?

我希望你有足够的信息能够回答这个问题。谢谢!


编辑: 好了,让我在这里改一下这个问题。当我恢复软件包时,它只会恢复\packages\文件夹中的文件。这意味着,当我在本地克隆存储库时,项目资源文件夹中没有任何内容,因为我在.gitignore映像中说过应该忽略它。所以当我恢复它不会更新\packages\文件夹。 这就是为什么我想要在那里引用\packages\文件夹,在资源文件夹内。

例如:

包Package1.1.0.0中有一个图像。称为Img1。当我安装软件包时,它将图像保存在以下路径下。

\packages\Package1.1.0.0.\Resources\Icons\Img1.png 

\包是解决方案下的文件夹中。

在我安装包的项目中,还有一个Img1。该图像保存在这里:

\project\Resources\Icons\Img1.png 

项目被保存在解决方案下面。

现在,我希望Img1.png不包含文件本身,而是对包文件夹中的Img1.png的引用。另外,当我将包更新到版本1.0.1时,我希望Visual Studio仍然正确地引用Img1.png。


编辑:

好了,所以我做了一些环顾四周,我发现我的确切问题的NuGet GitHub的页面上的问题:https://github.com/NuGet/Home/issues/2895

+0

如果你确切的问题与GitHub上的问题相同,我建议你可以更新你的提问或删除它,然后在GitHub页面上添加评论,这对其他社区是有益的。清除您的问题并轻松找到答案。谢谢。 –

回答

0

如果我理解它是正确的,表单中的图像应该使用相应的包文件夹的相对路径来引用。例如

/Packages/Package1/Images/Img1。png

以这种方式,即使在新分支中,一旦软件包在软件包文件夹中恢复并可用,它们也应该能够得到解决。

只是为了确保图像路径正确设置在窗体中。

+0

我以为我想回复,但后来我想到一个可能的解决方案,不小心按下输入,所以是... – iPhantomGuy

+0

好的。那么如果你可以更新你的问题或者在你的解决方案中添加一个答案,那么可能会对你有帮助。 –

+0

我编辑了原始文章,希望这可以更好地阐明它。 – iPhantomGuy

0

如果您的问题是“当我执行软件包还原时,Visual Studio会替换对该映像的引用,因此它会在程序包还原之后始终识别映像。

就像您的评论一样,当您将软件包从1.1.0.0更新到软件包1.1.0.1时,旧软件包1.1.0.0将被删除,并且参考也将被中断。因此,需要在解决方案级别手动键入以下命令:

Update-Package Reinstall 

如果你想更新包1.0.1版本,和Visual Studio仍然正常有参考Img1.png,你可以包这个IMG1 .png单独打包,而不是将其包含在软件包1.1.0.0中。在这种情况下,当你将包1.1.0.0更新到1.1.0.1时不会破坏包的引用Img1.png