这是我的应用程序部署:
c:\Program Files\Product\API.dll(在Gac中注册)
c:\Program Files\Product\ApiImpl1.dll(非Gac)
c:\Program Files\Product\ApiImpl2.dll(非Gac)
c:\ConsoleApplication\TestApi.exe
Api.dll是实现“c:\Program Files\Product\”的应用程序Facade。
Api.dll已在GAC中注册,并具有解析位于“c:\Program Files\Product\”中DLL的程序集解析器。
Api.dll引用了ApiImpl1.dll和ApiImpl2.dll。
问题是,当我在ConsoleApplication中添加对Api.dll的引用时,Visual Studio会将ApiImpl1.dll和ApiImpl2.dll递归地复制到项目目标位置。(尽管CopyLocal=False) 我通过浏览“c:\Program Files\Product\API.dll”来添加引用。
据我所知,我有几个解决方案: 1)在GAC中注册ApiImpl1.dll和ApiImpl2.dll(不可接受,因为我已经有程序集解析器); 2)添加到“.Net Add Reference”注册表,“c:\Program Files\Product”(无法解决); 3)添加到“.Net Add Reference”注册表,“c:\windows\Assembly\gac_msil\Api.dll”(虽然可以解决,但这是个不好的解决办法); 4)手动更改ConsoleApplication.csproj并删除Api.dll引用的HintPath属性。(不可接受,因为我将有很多客户使用此API)。
问题是,当我在ConsoleApplication中添加对Api.dll的引用时,Visual Studio会将ApiImpl1.dll和ApiImpl2.dll递归地复制到项目目标位置。(尽管CopyLocal=False) 我通过浏览“c:\Program Files\Product\API.dll”来添加引用。
据我所知,我有几个解决方案: 1)在GAC中注册ApiImpl1.dll和ApiImpl2.dll(不可接受,因为我已经有程序集解析器); 2)添加到“.Net Add Reference”注册表,“c:\Program Files\Product”(无法解决); 3)添加到“.Net Add Reference”注册表,“c:\windows\Assembly\gac_msil\Api.dll”(虽然可以解决,但这是个不好的解决办法); 4)手动更改ConsoleApplication.csproj并删除Api.dll引用的HintPath属性。(不可接受,因为我将有很多客户使用此API)。