对于某个项目,我需要创建包含图像的不同NuGet包。然后,我需要在项目中安装这些包并将图像放在表单中。一切顺利。
我的问题是,当我结帐到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
\ packages是解决方案下的文件夹。
在我安装软件包的项目中,还有一个Img1。该图像保存在此处:
\project\Resources\Icons\Img1.png
项目保存在解决方案下面。
现在,我希望Img1.png不包含文件本身,而是包含对packages文件夹中Img1.png的引用。此外,当我将软件包更新到版本1.0.1时,我希望Visual Studio仍然正确地引用Img1.png。
编辑:
好的,所以我做了一些调查,我发现我的确切问题是NuGet的GitHub页面上的一个问题:https://github.com/NuGet/Home/issues/2895。
答案 0 :(得分:0)
如果我理解正确,则应使用相应包文件夹的相对路径引用表单中的图像。 e.g。
/Packages/Package1/Images/Img1.png
通过这种方式,一旦包恢复并在包文件夹中可用,它们应该能够在新分支中得到解决。
只是要确保检查图像路径是否在表单中正确设置。
答案 1 :(得分: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分别打包到软件包中,而不是将其包含在package1中.1.0.0 即可。在这种情况下,当您将软件包1.1.0.0更新为1.1.0.1时不会破坏软件包Img1.png的引用