簡體   English   中英

NuGet包依賴於Visual C ++ 2013 Runtime

[英]NuGet package with a dependency on Visual C++ 2013 Runtime

我已經從.NET4.0 DLL創建了一個NuGet包,其中包括混合(托管和本機)代碼。

Native代碼打包在.NET4.0 DLL中,但依賴於Visual C ++ 2013 Redistributable

我正在嘗試集體討論如何使用NuGet包打包redist和/或警告用戶他們需要它,但我正在畫一個空白。

有人有任何想法嗎?

我實際上有點自己解決了這個問題。 雖然我找不到將VCpp Runtime作為NuGet包依賴項的解決方案,但我找到了一個解決方案來警告用戶需要Visual C ++ 2013 Runtime。

我在啟動需要VC ++運行時的組件/庫時靜態運行此代碼一次:

    private static void AssertVcppDependencies()
    {
        var system32Path = Environment.GetFolderPath(Environment.SpecialFolder.SystemX86);
        var system64Path = Environment.GetFolderPath(Environment.SpecialFolder.System);

        string platform = Environment.Is64BitProcess ? "x64 and x86" : "x86";
        bool success = File.Exists(Path.Combine(system32Path, MSVCP120DllName));

        if (Environment.Is64BitProcess)
        {
            success &= File.Exists(Path.Combine(system64Path, MSVCP120DllName));
        }            

        if (!success)
        {
            throw new InvalidOperationException("This Application Requires the Visual C++ 2013 " + platform + 
                " Runtime to be installed on this computer. Please download and install it from https://www.microsoft.com/en-GB/download/details.aspx?id=40784");
        }
    }

這應該警告任何正在使用NuGet包的開發人員,他們需要安裝運行時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM