2017-02-22 70 views
-1

我有一個包含一些dll的nuget軟件包。我有這個dll的內容,總是複製。Nuget:將dll複製到輸出

DLL's Copy Always

當我安裝的NuGet包的是未設置副本總是的DLL。我讀過關於使用Install.ps1(Stackoverflow link)的內容。但是,這並不對的NuGet 3.x版本的工作(見這個鏈接:Nuget documentation)給出聽到其他計算策略是不明確的,我

的代碼可以在Github 而且也Nuget找到

這是它被使用的文件:

public class CoordinateConverterUtilities 
{ 
#if WIN64 
    private const string DllImport = @"Plugins/ETRS89_LAMBERT_UTM_64bits.dll"; 
#else 
    private const string DllImport = @"Plugins/ETRS89_LAMBERT_UTM_32bits.dll"; 
#endif 

    #region Coordinate conversion functions using NGI DLL 

    //Import the dll with the functions to calculate lambert coordinates 
    [DllImport(DllImport, SetLastError = true, CharSet = CharSet.Auto)] 
    public static extern int GeoETRS89ToLambert72(double Xi, double Yi, double Zi, ref double xo, ref double yo, ref double Ho); 

    [DllImport(DllImport, SetLastError = true, CharSet = CharSet.Auto)] 
    public static extern int Lambert72ToLambert08(double Xi, double Yi, double Zi, ref double xo, ref double yo, ref double Ho); 

    [DllImport(DllImport, SetLastError = true, CharSet = CharSet.Auto)] 
    public static extern int Lambert72ToGeoETRS89(double Xi, double Yi, double Zi, ref double xo, ref double yo, ref double Ho); 

    #endregion 
} 

有人可以幫我或解釋這個

+0

保持軟件包名稱的祕密並不能幫助我們幫助您。沒有令人信服的理由說明install.ps1腳本無法完成工作。除了一個,他們有時需要VS運行提升。因此,通過右鍵單擊其快捷方式並選擇「以管理員身份運行」並嘗試再次安裝該軟件包來啓動VS。期望您的項目現在有一個有效的構建後事件。如果這沒有幫助,請聯繫軟件包作者尋求支持。 –

+0

@HansPassant首先包裝是我的,所以我可以適應它。第二個Powershell腳本支持被修改爲不再執行安裝和卸載腳本,但init腳本仍然執行。請參閱以下鏈接:http://blog.nuget.org/20151008/NuGet-3-What-and-Why.html。 – kevingoos

+0

@HansPassant我還在這個問題中加入了github和nuget。 – kevingoos

回答

1

如果你希望這些dll的與編譯的程序集,你應該把日部署? em進入lib文件夾,而不進入content

ps腳本應該可以工作,但我會遵循標準路線並將其他依賴項放在lib中。

參考:https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package#from-a-convention-based-working-directory

+0

我試過這個,但它不適用於我 – kevingoos

+1

什麼不適合你?如果你創建一個.nuspec文件,那麼在lib中放入一個dll就會自動運行。這個DLL必須由你的項目引用或不?如果是的話,lib是要走的路。如果沒有,內容和PS腳本。如果您需要對nuspec進行更改,請編輯該問題。 –

相關問題