小编rob*_*yaw的帖子

SQL Server数据工具:加载自定义DeploymentPlanModifier时出错:无法加载具有id的必需参与者

我需要拦截SSDT构建来修改构建脚本.我已经按照MSDN部署计划修改器教程,但是当我尝试构建数据库项目时,出现以下错误:

Required contributor with id 'MyDeploymentContributor.SqlRestartableScriptContributor'
could not be loaded.
Run Code Online (Sandbox Code Playgroud)

我使用的是Visual Studio 2012(版本11.0.61219.00 Update 5)和SSDT版本11.1.50730.0.

我签署了程序集,但没有指定密码.

我已经按照我在网上找到的几个解决方案无济于事,包括以下内容:

  1. 更新Visual Studio和SSDT;
  2. 将MyDeploymentContributor.dll和MyDeploymentContributor.pdb复制到以下位置:

    1. C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Extensions
    2. C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin
    3. C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120
    4. C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions
  3. 捕获SSDT和DacFx的事件日志(遵循Kevin Cunnane的说明,访问https://social.msdn.microsoft.com/Forums/en-US/5c84ab8e-b50b-4ecd-86da-866ac3bb2248/known-issue-with-ssdt-可扩展性 - 当前 - 释放?论坛= ssdt).以下是DacFx日志的结果:

    • 核心服务:SafeDirectoryCatalog:已C:\Program Files (x86)\Microsoft Visual Stusio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensions\MyDeploymentContributor.dll 添加程序集
    • 核心服务:扩展查找:C:\Program Files (x86)\Microsoft Visual Stusio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensions添加到扩展查找路径的目录
    • 核心服务:FilteringCompositionContainer:查找导出 Microsoft.SqlServer.Dac.Deployment.DeploymentPlanExecutor
    • 核心服务:FilteringCompositionContainer:将部件创建策略更改为NonShared
    • 核心服务:FilteringCompositionContainer:查找导出 Microsoft.SqlServer.Dac.Deployment.DeploymentPlanModifier

没有ContributorLoader消息.从该日志中,贡献者似乎正确加载.SSDT日志不包含任何提及贡献者的事件.

没有必需的贡献者参数,因此DeploymentContributor我的.sqlproj文件中的节点如下所示: …

sql-server sql-server-data-tools

10
推荐指数
1
解决办法
1383
查看次数

为什么我的ASP.NET MVC路由中的查询字符串?

在我开发的ASP.NET MVC(Beta)站点上,有时调用ActionLink会返回包含查询字符串的URL.我已经隔离了产生这种行为的情况,但我仍然不明白为什么,它不是生成一个干净的URL,而是决定使用查询字符串参数.我知道它们在功能上是相同的,但是为了URL的一致性(和外观),这不是我想要的.

这是我的路线:

routes.MapRoute(
    "Photo Gallery Shortcut",
    "group/{groupname}",
    new { controller = "Photos", action = "All", Id = "" });

routes.MapRoute(
    "Tagged Photos", //since the Tagged action takes an extra parameter, put it first
    "group/{groupname}/Photos/Tagged/{tagname}/{sortby}",
    new { controller = "Photos", action = "Tagged", Id = "", SortBy = "" });

routes.MapRoute(
    "Photo Gallery", //since the Gallery's defualt action is "All" not "Index" its listed seperatly
    "group/{groupname}/Photos/{action}/{sortby}",
    new { controller = "Photos", action = "All", Id = "", SortBy = "" …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc routing

9
推荐指数
1
解决办法
3624
查看次数

由于2016年1月Office Update导致的Excel VBA"自动化错误",可能是由MSCOMCTL.OCX引起的(Microsoft Windows Common Controls 6.o(Service Pack 6))

我已经使用Microsoft Windows Common Controls 6.0(Service Pack 6)在我们的电子表格中添加了一个Treeview Active X Control,即MSCOMCTL.OCX它存在于C:\Windows\SysWOW64\

KB2881029(Microsoft Office 2010 32位版安全更新)(MS16-004),在2016-01-15(或其附近)从Microsoft推出,安装了新版本的MSCOMCTL.OCX(v6.1.98.46),它是"创建的" "在2015-12-09,但在更新时"访问"(即安装在计算机上).

这使得工作簿"丢失"引用MSCOMCTL.OCX(引用标记为"丢失",因为引用仍然被勾选但不再有效;由于"编译错误:不支持对象库功能"或"自动化错误",工作簿无法编译").

似乎更新通过添加SubKey 2.0修改以下注册表项,但保留为空,并且不注册新的MSCOMCTL.OCX:

HKEY_CLASSES_ROOT\TypeLib\{831FDD16-0C5C-11D2-A9FC-000F8754DA1}\
Run Code Online (Sandbox Code Playgroud)

解决问题需要三个步骤:

  1. MSCOMCTL.OCX 需要取消注册并从提升的命令提示符重新注册,如下所示:

    C:\Windows\system32>Regsvr32 /u C:\\Windows\SysWOW64\MSCOMCTL.OCX 
    C:\Windows\system32>Regsvr32 C:\\Windows\SysWOW64\MSCOMCTL.OCX
    

    MSCOMCTL.OCX通过REGSVR32 注册新版本(版本6.1.98.46)时,会向注册表添加一个新密钥:

    KEY_CLASSES_ROOT\TypeLib\{831FDD16-0C5C-11D2-A9FC-000F8754DA1}\2.2
    

    如果有一个名为2.1的SubKey已经存在,它会输入一个2.2现在是使用密钥的引用.但它对空的2.0 SubKey没有任何作用!

    如果有一个2.0(或2.1的那个)SubKey,其中没有任何东西,使用该OCX的任何对象都应该无法创建,因为它将使用2.0(resp 2.1)版本,它不能也不会检查2.2版.

  2. 通过删除错误或取代的密钥2.0和2.1来清理注册表,只留下最新的工作密钥2.2.这可以通过选择HKEY_CLASSES_ROOT,Edit/Find/MSCOMCTRL.OCX从注册表编辑器完成.

    (注意:这一步似乎是可选的,因为我已经检查过只做第1步和第3步使得工作簿再次工作.但感觉这是正确的做法)

  3. 在Excel工作簿VBA项目中,需要重新引用和重新引用Microsoft Windows Common Controls 6.0(Service Pack 6).再参考不只是一个再勾选框,你需要使用"浏览",然后选择事MSCOMCTL.OCXC:\Windows\SysWOW64\

    (注意,在浏览器窗口中,您需要将文件类型从"dll"更改为"OCX"(或"全部"))

Daniel Alexander Karr(请参阅下面的帖子)亲切地分享了他编写的脚本,以自动执行步骤1和2(请注意,需要以管理员身份运行).

感谢Daniel和wmelonman帮助您理解问题并找到解决方案.

原帖

与此3年前发布的帖子 (由表单引起的Office Service Pack 3.0导致的VBA自动化错误)类似,我的一个完美工作的工作簿从一天到下一天停止工作......

在昨晚进行的更新列表中,以下是Office更新:

  • KB3114563(Microsoft Office 2010 32位版的定义更新)
  • KB2881029(Microsoft Office 2010 32位版安全更新) …

treeview excel vba excel-vba

9
推荐指数
1
解决办法
2万
查看次数

当在搜索中使用多个单词时,如何在Lucene.net中执行AND搜索?

我正在和Lucene.net一起试图找到如何在我的应用程序中实现它的方法.

我有以下代码

            .....
            // Add 2 documents
            var doc1 = new Document();
            var doc2 = new Document();

            doc1.Add(new Field("id", "doc1", Field.Store.YES, Field.Index.ANALYZED));
            doc1.Add(new Field("content", "This is my first document", Field.Store.YES, Field.Index.ANALYZED));
            doc2.Add(new Field("id", "doc2", Field.Store.YES, Field.Index.ANALYZED));
            doc2.Add(new Field("content", "The big red fox jumped", Field.Store.YES, Field.Index.ANALYZED));

            writer.AddDocument(doc1);
            writer.AddDocument(doc2);

            writer.Optimize();
            writer.Close();

            // Search for doc2
            var parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "content", new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));
            var query = parser.Parse("big abcdefg test1234");
            var searcher = new IndexSearcher(indexDirectory, true);
            var hits = searcher.Search(query);

            Assert.AreEqual(1, hits.Length());

            var …
Run Code Online (Sandbox Code Playgroud)

c# lucene search lucene.net

6
推荐指数
1
解决办法
7498
查看次数

JSLint - 使用'arguments'时不要改变参数<x>?

所有,

我使用JSLint来验证我的JS文件.在我最近的项目中,我使用以下格式为许多JavaScript函数设置默认值(在此处进一步详述):

function(a, b, option) {
    option = arguments.length > 2 ? option : "some default value";
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但是,这会导致最新版本的JSLint产生以下错误:

"Do not mutate parameter 'option' when using 'arguments'."
Run Code Online (Sandbox Code Playgroud)

我知道使用更常用的方法来分配默认值(即option = option || {};)可以解决错误; 但是,如果我打算传递一个falsey值,这将产生不正确的行为option.

引入新变量是解决此问题的唯一方法吗?例如:

var option2 = arguments.length > 2 ? option : "some default value";
Run Code Online (Sandbox Code Playgroud)

javascript parameters jslint

6
推荐指数
1
解决办法
1109
查看次数

移除/关闭 Firebase 侦听器

我有监听 Firebase 事件的 Vue 组件,并且在安装它们时创建 Firebase 参考/侦听器。但是当用户离开该页面时,我想删除beforeDestroy()生命周期挂钩中的所有侦听器。这是删除 Firebase 引用/侦听器的“正确”方法吗?

getFirebaseRef(path){
  return firebase.database().ref(path)
},

beforeDestroy(){
  // get firebase ref
  let fbPath = `/projects/proj_${this.currentLessonId}/components/${this.component.id}`
  this.getFirebaseRef(fbPath)
  .then((ref) => {
    // remove listener
    ref.off("value", (snap) => {
    })
    ref.off("child_added", (snap) => {
    })
    ref.off("child_removed", (snap) => {
    })
  })
},


mounted(){
  // get firebase ref
  let fbPath = `/projects/proj_${this.currentLessonId}/components/${this.component.id}`
  this.getFirebaseRef(fbPath)
  .then((ref) => {
    // add listener
    ref.on("value", (snap) => {
      doSomething1()
    })
    ref.on("child_added", (snap) => {
      doSomething2()
    })
    ref.on("child_removed", (snap) => { …
Run Code Online (Sandbox Code Playgroud)

javascript firebase vue.js firebase-realtime-database

4
推荐指数
1
解决办法
8702
查看次数

如何解决“未指定身份验证方案,并且未找到 DefaultChallengeScheme”的问题

[![消息错误]] [1]: https://i.stack.imgur.com/ciKCK.png

我的观点是,如果有人在没有登录的情况下进入授权页面,它将被重定向到登录页面。

这是我的代码(.NET Core 3.1):

我的控制器

    [Authorize]
    public IActionResult Username()
    {
        var lstUsername = _dbContext.MT_USERNAME.ToList();
        return View(lstUsername);
    }
Run Code Online (Sandbox Code Playgroud)

我的 Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<GPServiceDbContext>(options =>
        {
            options.UseSqlServer(xxx);
        });
        services.AddControllersWithViews();

        services.AddSession(options =>
        {
            options.IdleTimeout = TimeSpan.FromMinutes(1);   
        });
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }
        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();
        app.UseAuthentication();
        app.UseStatusCodePages(context =>
        {
            var response = context.HttpContext.Response;
            if (response.StatusCode == (int)HttpStatusCode.Unauthorized ||
                response.StatusCode == (int)HttpStatusCode.Forbidden)
                response.Redirect("/Login/Login");
            return Task.CompletedTask; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc .net-core visual-studio-code asp.net-core

4
推荐指数
1
解决办法
2万
查看次数

我无法运行我的reactjs应用程序的docker容器

我是 Docker 新手,我尝试运行create-react-app图像的容器,因此这些是我已完成的步骤:

  1. npx create-react-app frontend

  2. 我创建了Dockerfile.dev如下所示:

    FROM node:alpine
    WORKDIR '/app'
    COPY package.json .
    RUN npm install
    COPY . . 
    CMD ["npm" , "run" , "start"]
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我使用此命令来构建图像:

    docker build -f Dockerfile.dev .
    
    Run Code Online (Sandbox Code Playgroud)
  4. 当我使用提供的图像 ID 运行容器时:

    docker run -p 3000:3000 my_docker_image_id
    
    Run Code Online (Sandbox Code Playgroud)

正如此屏幕截图所示,什么也没有发生。

但是,当我将-i参数添加到命令中时,一切正常,如以下屏幕截图所示

docker run -p 3000:3000 -i my_docker_image_id
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

docker webpack-dev-server create-react-app

3
推荐指数
1
解决办法
2233
查看次数

PowerShell:为什么 Get-Unique 只返回集合中的第一个对象?

我有一系列结构如下的 JSON 文件:

{
  "start": "B",
  "end": "D",
  "display": true
}
Run Code Online (Sandbox Code Playgroud)

其内容为:

文件 start end display
1 C 真的
2 C 真的
3 D 真的
4 A 真的
5 A C 真的
6 A 真的

这些文件在 PowerShell 中解析如下:

$edges = Get-ChildItem -Filter "*.json" `
    | ForEach-Object { Get-Content $_.FullName | Out-String | ConvertFrom-Json | Select-Object @{n="start";e={$_.start}},@{n="end";e={$_.end}},@{n="display";e={$_.display}} }

# start end display
# ----- --- -------
# B     C      True
# B     C      True
# B …
Run Code Online (Sandbox Code Playgroud)

powershell

2
推荐指数
1
解决办法
2256
查看次数